/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.Comunicator;

import org.DragonPokerServer.Thread.ThreadUser;


/**
 *
 * @author gonçalo.margalho
 */
public class ManageMessages extends Thread {

    @Override
    public void run() {
        try {
            Thread.sleep(10);
            //Controllo se vi sono processi morti, se si devo togliere l'utente dalle stanze!!
            for (ThreadUser tu : Global.users) {
                System.out.println(tu.getUser().getUsername());
                if (tu.isAlive() == false) {
                    Global.users.remove(tu);
                }
            }
            //Ora controlle se vi sono messaggi da inviare
            for (;;) {
                
                Message m = Global.messages.getNextMessageToSend();
                if (m != null) {
                    for (String u : m.getReceiver()) {
                        for (ThreadUser tu : Global.users) {
                            if (u.equals(tu.getUser().getUsername())) {
                                //Devo controllare se sta inviando...
                                for (;;) {
                                    if (tu.isToSend() == false) {
                                        tu.setMessage(m);
                                        tu.setToSend(true);
                                        System.out.println("---> To Send");
                                        m.stampa();
                                        break;
                                    }
                                    Thread.sleep(1);
                                }
                            }
                        }
                    }
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}
